/*
 * Copyright (c) 2018 maoyan.com
 * All rights reserved.
 *
 */
package com.darren.euc.util;

/**
 * 在这里编写类的功能描述
 *
 * @author fangwenhao
 * @created 2018/3/13
 */
public class IdToCodeHelper {


    // 编码的默认长度都是16位，其它情况需要自己指定
    private static final int DEFAULT_CODE_LENGTH = 10;

    /**
     * 将整形的id转换成16位的编码字符串
     *
     * @param id
     * @return
     */
    public static String idToCodeWithoutPrefix(long id) {
        return idToCode(id, DEFAULT_CODE_LENGTH);
    }

    /**
     * 将整形的id转换成指定位数的编码字符串
     *
     * @param id
     * @param codeLength
     * @return
     */
    private static String idToCode(long id, int codeLength) {
        return String.format(new StringBuilder().append("%0").append(codeLength).append("d").toString(), id);
    }

    /**
     * 将编码还原成整形id
     *
     * @param code
     * @return
     */
    public static long codeToIdWithoutPrefix(String code) {
        return Long.valueOf(code);
    }

    /**
     * 将编码去两位前缀后还原成整形id
     *
     * @param code
     * @return
     */
    public static long codeToIdWithPrefix(String code) {
        return Long.valueOf(code.substring(2));
    }


}
